package com.springboot.service.blog;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.springboot.dao.BlogCloudTagDao;
import com.springboot.entity.BlogCloudTagEntity;
import com.springboot.returndata.dto.blog.BlogCloudTagAddUpDto;
import com.springboot.returndata.dto.blog.BlogCloudTagPageDto;
import com.springboot.returndata.vo.blog.BlogCloudTagVo;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;

import jakarta.annotation.Resource;
import java.util.List;

/**
 * <p>
 * 博客标签 服务类
 * </p>
 *
 * @author zyj
 * @since 2023-03-23
 */
@Service
public class BlogCloudTagService extends ServiceImpl<BlogCloudTagDao, BlogCloudTagEntity> {

    @Resource
    private BlogCloudTagDao thisMapper;


    /**
     * 获取文章标签
     *
     * @param blogCloudTagPageDto
     * @return
     */
    public Page<BlogCloudTagVo> pageBlogTag(BlogCloudTagPageDto blogCloudTagPageDto) {

        Page<BlogCloudTagVo> blogCloudTagVoPage = thisMapper.pageBlogCloudTag(blogCloudTagPageDto.getPage(), blogCloudTagPageDto);
        return blogCloudTagVoPage;
    }



    /**
     * 方法描述 获取文章分类列表
     * @since: 1.0
     * @param
     * @return: List<BlogSortVo>
     * @author: zyj
     * @date: 2023/3/29 16:09
     */
    public List<BlogCloudTagVo> listBlogSortAll() {
        List<BlogCloudTagVo> sortVos = thisMapper.listBlogCloudTag();
        return sortVos;
    }

    /**
     * 添加文章标签
     *
     * @param blogCloudTagAddUpDto
     */
    public void addBlogTag(BlogCloudTagAddUpDto blogCloudTagAddUpDto) {
        BlogCloudTagEntity blogCloudTagEntity = new BlogCloudTagEntity();
        BeanUtils.copyProperties(blogCloudTagAddUpDto, blogCloudTagEntity);
        thisMapper.insert(blogCloudTagEntity);
    }


    /**
     * 修改文章标签
     *
     * @param blogCloudTagAddUpDto
     */
    public void updateBlogTag(BlogCloudTagAddUpDto blogCloudTagAddUpDto) {
        BlogCloudTagEntity blogCloudTagEntity = new BlogCloudTagEntity();
        BeanUtils.copyProperties(blogCloudTagAddUpDto, blogCloudTagEntity);
        thisMapper.updateById(blogCloudTagEntity);
    }

    /**
     * 删除文章标签
     *
     * @param id
     * @return
     */
    public void deleteBlogTag(Integer id) {
        thisMapper.deleteById(id);
    }
}
